package com.google.code.jcooky.rpc.compiler.executor;

import java.io.File;

public class Argument {
	private boolean genJava=false, genCpp=false;
	private String dest = "./", src;
	
	public static class ArgumentException extends RuntimeException {
		public ArgumentException(String s) {
			super(s);
		}
	}
	
	public Argument(String []args) {
		for(String s : args) {
			if(s.startsWith("-gen-java")) {
				genJava = true;
			} else if(s.startsWith("-gen-cpp")) {
				genCpp = true;
			} else if(s.startsWith("-o")) {
				dest = s.substring("-o".length()) + "/";
			} else {
				src = s;
				File f = new File(src);
				if(!f.exists()) {
					throw new ArgumentException(src + "이라는 파일이 존재하지 않습니다.");
				} else if(!f.isFile()) {
					throw new ArgumentException(src + "는 파일이 아닙니다.");
				} else if(!f.canRead()) {
					throw new ArgumentException(src + "를 읽을수가 없습니다.");
				}
			}
		}
		
		if(!genJava && !genCpp) {
			throw new ArgumentException("적어도 하나의 언어는 선택해야합니다.(ex: -gen-java)");
		}
	}

	public boolean isGenJava() {
		return genJava;
	}

	public boolean isGenCpp() {
		return genCpp;
	}

	public String getDest() {
		return dest;
	}

	public String getSrc() {
		return src;
	}
}
